# 数据结构--列表

# 列表的定义-------------------------------------------------------------
student_list = ['学生一', '学生二', '学生三', '学生四']
# print(student_list)
# print(type(student_list))
# 列表中存储的数据类型可以不一致
demo_list = ['aaa', 123, True, ['内部列表元素1', '内部列表元素2']]
# print(demo_list)
# print(type(demo_list))
# for item in demo_list:
#     print(item)
#     print(type(item))

# # 列表的下表
# for i in range(len(student_list)):
#     print(str(i) + ' ' + student_list[i])

# 列表的方法-------------------------------------------------------------
# 1.1 查找元素的下标
# print(demo_list.index(123))
# print(demo_list.index(111))

# 1.2 修改特定位置的值
# print(demo_list[0])
# demo_list[0] = 'bbb'
# print(demo_list[0])

# 1.3 在特定位置插入新元素
test_str = 'chenele'
demo_list.insert(1, test_str)
print(student_list)

# 1.4 默认队尾追加元素
# 单个
demo_list.append("append")
# 一堆
ext_list = [1, 2, 3]
demo_list.extend(ext_list)

# 1.5 删除
# 无返回值
del demo_list[len(demo_list) - 1]
# 有返回值
print(demo_list.pop(2))
# 删除某元素在列表中的第一个匹配项
demo_list.remove("aaa")

# 1.6 统计列表中某个元素的个数
count = demo_list.count('aaa')
print(count)

# 1.7 清空列表
demo_list.clear()

# 综合案例---------------------------------------------------------------
#定义一个列表
nums = [21, 25, 21, 23, 22, 20]
#追加一个数字31
nums.append(31)
#追加一个列表[29, 33, 30]
temp = [29, 33, 30]
nums.extend(temp)
#取出第一个元素（21）
print(nums.pop(0))
#取出最后一个元素(30)
print(nums.pop(len(nums) - 1))
#查找元素31的下标位置
print(nums.index(31))